更新时间:2023-02-09 12:47
Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring 框架的开发者或者企业更容易访问和利用企业服务。
Spring Batch是一个批处理的框架,作为一个 Spring 组件,提供了通过使用 Spring 的 依赖注入(dependency injection) 来处理批处理的条件。
· 周期性的提交批处理
· 把一个任务并行处理
· 消息驱动应用分级处理
· 大规模并行批处理
· 手工或调度使任务失败之后重新启动
· 处理时跳过部分记录
· 成批事务:为小批量的或有的存储过程/脚本的场景使用
· 开发者使用Spring编程模型,编写具体的业务逻辑。SpringBatch框架提供基础服务。
· 清楚的区分基础服务、执行环境和应用的关系
· 提供基本的执行服务接口。所有的项目都可以去实现这些接口
· 提供基本的执行服务的缺省实现。可以直接拿来使用。
· 可以在框架各层上方便的配置、定制已经扩展
· 核心服务可以在基础服务不受任何影响的情况下轻松的替换或扩展。
· 提供一个基本的部署模型。框架的Jar包完全独立于应用
Spring Batch使用三层架构,三层分别为应用、核心和基础服务。应用层是用户写的批处理任务。核心层包含执行和控制任务必须的核心类。如JobLauncher、Job和Step的实现。应用和核心层基于一层公用的基础服务。基础服务包括通用的Reader,Writers,RetryTemplate。
Spring Batch 是 SpringSource 和 Accenture(埃森哲)合作开发的。Accenture 在批处理架构上有着丰富的工业级别的经验,贡献了之前专用的批处理体系框架(这些框架历经数十年研发和使用,为Spring Batch提供了大量的参考经验);SpringSource则有着深刻的技术认知和Spring框架编程模型。
Spring Batch 框架通过提供丰富的即开即用的组件、和高可靠性、高扩展性的能力,使得开发批处理应用的人员专注于业务的处理,提升批处理应用的开发效率,通过 Spring Batch 可以快速的构建出轻量级的健壮的并行处理应用。